package com.zb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zb.entity.ZjRole;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * 角色表 Mapper 接口
 * </p>
 *
 * @author WEN
 * @since 2023-07-18
 */
@Repository
public interface ZjRoleMapper extends BaseMapper<ZjRole> {
    /**
     * 批量启用或禁用角色状态
     * @param idList 角色ID集合
     * @param disable 是否禁用：false-启用，true-禁用
     */
    int updateDisableBatchByIds(@Param("idList") List<Long> idList, @Param("disable") boolean disable);

    /**
     * 查询角色名称是否存在
     * @param custAccId 商家ID
     * @param id 角色ID
     * @param name 角色名称
     * @return
     */
    Integer existByName(@Param("custAccId") Long custAccId, @Param("id") Long id, @Param("name") String name);

    /**
     * 根据角色ID查询是否为系统超管
     * @param id 角色ID
     * @return
     */
    Integer existAdminById(Long id);

    /**
     * 根据角色编码查询是否存在
     * @param custAccId 商家ID
     * @param code 角色编码
     * @return
     */
    Integer existByCode(@Param("custAccId") Long custAccId, @Param("id") Long id,  @Param("code") String code);

    /**
     * 根据角色ID集合查询ID集合中是否存在系统超管
     * @param idList 角色ID集合
     * @return
     */
    Integer existAdminByIds(@Param("idList") List<Long> idList);

    /**
     * 根据[账号ID]&[商家ID]集合查询角色
     * @param accountId 账号ID
     * @param custAccIds 商家ID集合
     * @return
     */
    List<ZjRole> getByAccountIdAndCustAccIds(@Param("accountId") Long accountId, @Param("custAccIds") List<Long> custAccIds);
}
